package com.lovemanai.action;

//import java.util.HashMap;
import java.util.List;
import java.util.Map;




//import net.sf.json.JSONObject;

import com.lovemanai.dao.DbDao;
import com.lovemanai.model.User;
import com.lovemanai.tools.common.MD5Encryption;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	
	private static final long serialVersionUID = 1L;
	
	private ActionContext acx = ActionContext.getContext();
	
	private DbDao dbDao = new DbDao();
	
	private User user;

	private String tip;//服务器返回的提示信息
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	
	public String getTip() {
		return tip;
	}

	public void setTip(String tip) {
		this.tip = tip;
	}

	/**
	 * 用户登录
	 * @return
	 */
	public String login() {
		
		Map<String, Object> session = acx.getSession();
		
		String userName = user.getUserName();
		String password = MD5Encryption.MD5Encode(user.getPassword());
		
		String sql = "select * from user where username = ?";
		
		List<User> users = dbDao.query(sql, User.class, userName);
		
		if(users.size() == 0) {
			setTip(userName);
			return INPUT;//用户不存在，跳转到注册页面界面
		} else {
			if(userName.equals(users.get(0).getUserName()) 
					&& password.equals(users.get(0).getPassword())) {
				session.put("id", users.get(0).getId());//取出用户id备用
				session.put("userName", userName);
				return SUCCESS;//登录成功
			} else {
				setTip("用户名或者密错误");
				return ERROR;//用户名或者密码错误
			}
		}
	}
	
	
	/**
	 * 用户注册
	 * @return
	 * @throws Exception
	 */
	public String regist() throws Exception {
		String userName = user.getUserName();
		String password = user.getPassword();
		if(userName == null && password == null) {
			setTip("用户名或密码不能为空");
			return ERROR;//用户名，密码不能为空
		} else {
			String sql = "insert into user(username, password) value(?,?)";
			dbDao.update(sql, userName, MD5Encryption.MD5Encode(password));//密码MD5加密
			acx.getSession().put("userName", userName);
			return SUCCESS;//注册成功
		}
	}
//	
//	public String checkUser() throws Exception {
//		/*
//		 * 1.用户名可用，返回true
//		 * 1.用户名已存在，返回userNameisnotUnique
//		 * 前端页面校验完成后，服务器端还需要对用户名和密码进行校验
//		 * 2.用户名为空，返回userNameisEmpty
//		 * 3.密码为空，返回passwordisEmpty
//		 */
//		
//		String userName = user.getUserName();
//		String password = user.getPassword();
//		String result = null;
//		if(userName == null) {
//			result = stringToJson("userNameisEmpty");
//			System.out.println(result);
//			setTip(result);
//			return SUCCESS;
//		}
//		if(password == null) {
//			result = stringToJson("passwordisEmpty");
//			setTip(result);
//			return SUCCESS;
//		}
//		String sql = "select * from user where username = ?";
//		List<User> users = dbDao.query(sql, User.class, userName);
//		if(users.isEmpty()) {
//			result = stringToJson("true");
//			setTip(result);
//			return SUCCESS;
//		} else {
//			result = stringToJson("userNameisnotUnique");
//			setTip(result);
//			return SUCCESS;
//		}
//	}
//	
//	/**
//	 * 将服务器返回字符串转换成json串
//	 * @param str
//	 * @return
//	 */
//	public String stringToJson(String str) {
//		Map<String, String> map = new HashMap<String, String>();
//		map.put("tip", str);
//		JSONObject json =  JSONObject.fromObject(map);
//		return json.toString();
//	}
}
